

    Function.implement
    (
        
        /**
         * Determine if an object is like this constructors prototype. An object
         * is considered 'like' an instance of a constructor, if the object
         * implements at least all of the same methods that the constructor
         * prototype implements.
         * 
         * This method can be used to test for the presence of interfaces.
         * 
         * @param {Object} value
         * @return {Boolean}
         */
        function like (value) 
        {
            if (null == value)
                return false;
                
            var prototype= this.prototype
            ,   accessor;
            
            for (accessor in prototype) 
            {
                if('function' === typeof prototype[accessor]
                && 'constructor' !== accessor
                && '_' !== accessor.charAt(0)
                && 'function' !== typeof value[accessor])
                    return false;
            };
            
            return true;
        }
    
    );
